<?php
namespace App\Task;

use App\Log;
use Hyperf\Contract\StdoutLoggerInterface;
use Hyperf\Crontab\Annotation\Crontab;
use Hyperf\Di\Annotation\Inject;

/**
 * 通过 #[Crontab] 注解可以快速完成对一个任务的定义，以下的定义示例与配置文件定义所达到的目的都是一样的。
 * 定义一个名为 Foo 每分钟执行一次 App\Task\FooTask::execute() 的定时任务。
 */
#[Crontab(name: "FooTask", rule: "*\/1 * * * * *", callback: "execute", memo: "这是一个示例的定时任务")]
class FooTask
{
    public function execute()
    {
        Log::get('default','default')->info("crontab:".__METHOD__.','.date('Y-m-d H:i:s', time()));
    }

    #[Crontab(rule: "\/5 * * * * *", memo: "foo",enable:false)]
    public function foo()
    {
        Log::get('default','default')->info("crontab:".__METHOD__.','.date('Y-m-d H:i:s', time()));
    }
}
